package com.doitedu.day03.funcs

import com.doitedu.day03.Student

/**
 * @Date 22.6.22
 * @Created by HANGGE
 * @Description
 *
 * 1 size  length
 * 2  isEmpy  nonEmpy
 * 3  min  max  minBy maxBy
 * 4  contains  是否包含某个元素   是否包含大于4的元素
 * 5  count(f:A => Boolean)  统计符合条件的元素的个数
 * 6  filter(f:A=> Boolean)
 *  f:A=>Boolean   可以使用  &&  ||  !
 * 7 mkString  mkString("-")指定拼接符
 * 8 reverse   集合元素反转
 * 9  sum  数字求和
 * 10 sorted  对集合排序  排序规则是默认的  数字升序  字符串 字典
 * 11 sortBy  可以根据某个属性排序
 * 12 tail 去除第一个元素的子集
 * 13 head   第一个元素
 * 14 tails   每次减去收个元素返回子集合
 * 15  take(N)  从集合的0位置 获取N个元素
 * 16 slice(from , until) [) 从指定位置开始的元素到指定结束位置的元素  组成的集合
 */
object _01集合方法02 {
  def main(args: Array[String]): Unit = {
    val arr = Array(1 ,2,3,4,5,6)
   /* val ints = arr.take(3)
    println(ints.toList)
    val ints1 = arr.slice(2, 5)
    println(ints1.toList)

    val iters: Iterator[Array[Int]] = arr.tails
    println("--------------------------")*/
    // 处理迭代器中的每个元素
  //  iters.foreach(arr=>println(arr.toList))
  //  println("--------------------------")

   /* println(arr.tail.toList)  // 去除第一个元素的子集
    arr.head //  第一个元素*/
   // println(arr.sortBy(e => - e).toList)
    println(arr.sortBy(- _).toList)
   // println(arr.sortBy(_).toList)  不能使用

   // println(arr.sorted.reverse.toList)



   /* val student  = List(
      // 集合中的元素没有排序规则
      Student(1, "leige", 27),
      Student(2, "haoge", 24),
      Student(3, "yongge", 29),
      Student(4, "qiange", 27))*/

    // 按照某个属性进行排序  如果属性是 数字  可以使用 - 反序
   // val sorted = student.sortBy(-_.age)
 //   val sorted = student.sortBy(_.name).reverse
  //  println(sorted)
/*
    val sorted = student.sorted.reverse
    println(sorted.toList)
*/

 /*   // 对集合作用的元素 排序 默认的排序规则
    // 前提是  集合中的元素可排序
    val sorted = arr.sorted
    println(sorted.toList)*/

   /* val sum = arr.sum
    println(sum)*/


/*    val reverse = arr.reverse
    println(reverse.toList)*/


   //将集合中的所有的元素拼接成字符串
   // val str = arr.mkString
    /*val str = arr.mkString("-")
    println(str)*/

  }

}
